GtkMenuTracker: add 'special' items
authorRyan Lortie <desrt@desrt.ca>
Sun, 15 Dec 2013 02:56:26 +0000 (21:56 -0500)
committerRyan Lortie <desrt@desrt.ca>
Sat, 18 Jan 2014 01:32:55 +0000 (20:32 -0500)
Allow the possibility for items to be marked with a special attribute and
expose this via GtkTrackerMenuItem.  For internal use only.

We will use this to implement the special 'Hide', 'Hide Others' and 'Show All'
items and the 'Services' submenu in the Mac OS application menu.

https://bugzilla.gnome.org/show_bug.cgi?id=720552

gtk/gtkmenutrackeritem.c
gtk/gtkmenutrackeritem.h

index bb9a1f41504f193f295c9e0f8b6c9bf5db900b64..ddcbc0bfc681d4bbdc2fbc4025a1f44cb2cdfd24 100644 (file)
@@ -653,6 +653,16 @@ gtk_menu_tracker_item_get_accel (GtkMenuTrackerItem *self)
   return gtk_action_muxer_get_primary_accel (GTK_ACTION_MUXER (self->observable), self->action_and_target);
 }
 
+const gchar *
+gtk_menu_tracker_item_get_special (GtkMenuTrackerItem *self)
+{
+  const gchar *special = NULL;
+
+  g_menu_item_get_attribute (self->item, "x-gtk-private-special", "&s", &special);
+
+  return special;
+}
+
 GMenuModel *
 _gtk_menu_tracker_item_get_submenu (GtkMenuTrackerItem *self)
 {
index 03709d6051ea5affd0381ac86db40c28849ada2b..2d9ff16a8dd013ce8c54eae9648c122be476dc36 100644 (file)
@@ -48,6 +48,8 @@ GtkMenuTrackerItem *   _gtk_menu_tracker_item_new                       (GtkActi
                                                                          const gchar         *action_namespace,
                                                                          gboolean             is_separator);
 
+const gchar *           gtk_menu_tracker_item_get_special               (GtkMenuTrackerItem *self);
+
 GtkActionObservable *  _gtk_menu_tracker_item_get_observable            (GtkMenuTrackerItem *self);
 
 gboolean                gtk_menu_tracker_item_get_is_separator          (GtkMenuTrackerItem *self);